package TDALista;

/**
 * Clase DNode.
 * @author Ezequiel Antoine - LU:94166.
 */
public class DNode<E> implements Position<E>
{
	protected E elem;
	protected DNode<E> prev;
	protected DNode<E> next;
	
	public DNode(DNode<E> p,DNode<E> n,E element)
	{
		prev=p;
		next=n;
		elem=element;
	}
	
	//Retorna el elemento del nodo.
	public E element()
	{
		if ((prev==null) && (next==null))
			return null;
		
		return elem;
	}
	
	/**
	 * Retorna el Nodo siguiente al actual.
	 * @return Nodo siguiente.
	 */
	public DNode<E> getNext()
	{
		return (next);
	}
	 
	/**
	 * Retorna el Nodo anterior al actual.
	 * @return Nodo anterior.
	 */
	public DNode<E> getPrev()
	{
		return (prev);
	}
	 
	/**
	 * Setea el nodo siguiente al actual.
	 * @param newNext Nuevo nodo, siguiente al actual.
	 */
	 public void setNext(DNode<E> newNext)
	 { 
		 next=newNext;
	 }
	 
	 /**
	 * Setea el nodo anterior al actual.
	 * @param newPrev Nuevo nodo, anterior al actual.
	 */
	 public void setPrev(DNode<E> newPrev)
	 { 
		 prev=newPrev;
	 }
	 
	 /**
	  * Setea el elemento del nodo actual.
	  * @param newElement Nuevo elemento del nodo actual.
	  */
	 public void setElement(E newElement)
	 { 
		 elem=newElement;
	 }

}
